home *** CD-ROM | disk | FTP | other *** search
/ Cream of the Crop 26 / Cream of the Crop 26.iso / program / ccdl151e.zip / CTYPE.H < prev    next >
C/C++ Source or Header  |  1997-03-27  |  2KB  |  90 lines

  1. /*  ctype.h
  2.  
  3.     Defines the locale aware ctype macros.
  4.  
  5. */
  6.  
  7.  
  8. #ifndef __CTYPE_H
  9. #define __CTYPE_H
  10.  
  11. #ifndef _SIZE_T
  12. #define _SIZE_T
  13. typedef unsigned size_t;
  14. #endif
  15.  
  16. extern unsigned char _ctype[ 256 ];
  17.  
  18. int isalnum (int __c);
  19. int isalpha (int __c);
  20. int iscntrl (int __c);
  21. int isdigit (int __c);
  22. int isgraph (int __c);
  23. int islower (int __c);
  24. int isprint (int __c);
  25. int ispunct (int __c);
  26. int isspace (int __c);
  27. int isupper (int __c);
  28. int isxdigit(int __c);
  29. int isascii (int __c);
  30.  
  31. /* character classes */
  32.  
  33. #define _IS_SP     1           /* space */
  34. #define _IS_DIG    2           /* digit */
  35. #define _IS_UPP    4           /* upper case */
  36. #define _IS_LOW    8           /* lower case */
  37. #define _IS_HEX   16           /* [0..9] or [A-F] or [a-f] */
  38. #define _IS_CTL   32           /* control */
  39. #define _IS_PUN   64           /* punctuation */
  40. #define _IS_BLK  128           /* blank */
  41.  
  42. #define _IS_ALPHA    (_IS_UPP | _IS_LOW)
  43. #define _IS_ALNUM    (_IS_DIG | _IS_ALPHA)
  44. #define _IS_GRAPH    (_IS_ALNUM | _IS_HEX | _IS_PUN)
  45.  
  46. #ifndef __USELOCALES__
  47.  
  48. #define isalnum(c)   (_ctype[ (c) ] & (_IS_ALNUM))
  49.                      
  50. #define isalpha(c)   (_ctype[ (c) ] & (_IS_ALPHA))
  51.                      
  52. #define iscntrl(c)   (_ctype[ (c) ] & (_IS_CTL))
  53.                      
  54. #define isdigit(c)   (_ctype[ (c) ] & (_IS_DIG))
  55.                      
  56. #define isgraph(c)   (_ctype[ (c) ] & (_IS_GRAPH))
  57.                      
  58. #define islower(c)   (_ctype[ (c) ] & (_IS_LOW))
  59.                      
  60. #define isprint(c)   (_ctype[ (c) ] & (_IS_GRAPH | _IS_BLK))
  61.                      
  62. #define ispunct(c)   (_ctype[ (c) ] & (_IS_PUN))
  63.                      
  64. #define isspace(c)   (_ctype[ (c) ] & (_IS_SP))
  65.                      
  66. #define isupper(c)   (_ctype[ (c) ] & (_IS_UPP))
  67.                      
  68. #define isxdigit(c)  (_ctype[ (c) ] & (_IS_HEX))
  69.  
  70. #endif
  71.  
  72. #define isascii(c)  ((unsigned)(c) < 128)
  73. #define toascii(c)  ((c) & 0x7f)
  74.  
  75. int tolower(int __ch);
  76. int _ltolower(int __ch);
  77. int toupper(int __ch);
  78. int _ltoupper(int __ch);
  79.  
  80. #define _toupper(c) ((c) + 'A' - 'a')
  81. #define _tolower(c) ((c) + 'a' - 'A')
  82.  
  83. #if defined(__USELOCALES__)
  84.  
  85. #define toupper    _ltoupper
  86. #define tolower    _ltolower
  87.  
  88. #endif
  89.  
  90. #endif